To enhance confidentiality of a file, efforts to encrypt the file have been implemented. However, in a case where an encrypted file is used in an application, the encrypted file needs to be decrypted in advance before using except where a dedicated plug-in for a specific application is used, and therefore, the file may lose its confidentiality at the time of decryption.
Regarding a problem of losing confidentiality when an application uses an encrypted file, JP 2008-134821 A discloses a technology for providing a system in which various applications use an encrypted file. JP 2008-134821 A discloses that decryption processing or re-encryption processing of the encrypted file is performed by hooking an application program interface (API) provided by an operating system (OS).
Typically, when a file is encrypted without having an instruction by a user, it is necessary to set encryption criteria in order to determine whether an arbitrary file is a file to be encrypted. For example, an information processing apparatus disclosed in JP 2008-134821 A determines whether a file is subjected to be encrypted based on a content of the file to be processed with the hooked API. An example is disclosed in which whether a data format is MS-WORD is specified by determining whether a character string of a head of eight bytes is a predetermined character string by reference to a header of the data. Besides that, an example is disclosed, in which whether a file is subjected to be encrypted is determined by determining: whether the file is in accordance with a certain format, whether a character string such as “confidential” is included in a data body, whether personal information related to a name is included as a result of natural language processing, whether it is an image, whether the resolution of an image is a high resolution, and whether an image that accords with a human face is included as a result of image processing.
Further, for example, JP 10-260903 A discloses that a file handle table for controlling an encrypted file that is being open is prepared, a file operation request from an application program is hooked, and encryption and decryption are automatically performed. Further, JP 10-260903 A discloses that a directory to be encrypted and a user list capable of decrypting an encrypted file can be set for each user.